package calpi;

/**
 * Classe responsável pela descrição da disciplina
 * @author Sem iNick
 */
public class Disciplina {

    //Descricao da disciplina
    private String descricao;

    //Código da disciplina
    private int cod;

    /**
     * Construtor padrão para criar um objeto disciplina
     * @param cod Código da disciplina
     * @param descr Descrição da disciplina
     * @throws IllegalArgumentException Se código for menor que zero
     * @throws NullPointerException Se descrição for nula
     */
    public Disciplina(int cod, String descr) {

        setCodigo(cod);
        setDescricao(descr);
    }

    public int getCodigo() {

        return cod;
    }

    /**
     * Setter para código
     * @param cod Novo código da disciplina
     * @throws IllegalArgumentException Se cod for menor que zero
     */
    public void setCodigo(int cod) {

        if (cod < 0) {

            throw new IllegalArgumentException("Código não pode ser negativo.");
        }

        this.cod = cod;
    }

    public String getDescricao() {

        return descricao;
    }

    /**
     *
     * Setter para descrição
     * @param descricao Nova descrição para a disciplina
     * @throws NullPointerException Se descricao for nula
     */
    public void setDescricao(String descricao) {

        if (descricao == null) {

            throw new NullPointerException("Descrição não pode ser nula.");
        }

        this.descricao = descricao;
    }

    @Override
    public String toString() {

        return "Código: " + cod + "\nDescrição: " + descricao;
    }
}
